package com.alks.function.mapper.finance.ryfinance;

import com.alks.entity.data.entity.PcCostTemp;
import com.alks.entity.data.entity.YfApAmt;
import com.alks.entity.data.entity.YfCostDetail;
import com.alks.function.data.request.finance.ryfinance.CostDTTRequest;
import com.alks.function.data.vo.finance.mtlcosts.YfApExportVo;
import com.alks.function.data.vo.finance.ryfinance.TempToDetVo;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * <p>
 *  Mapper 接口
 * </p>
 *
 * @author ms
 * @since 2024-05-22
 */
public interface YfCostDetailMapper extends BaseMapper<YfCostDetail> {
    /**
     *费用明细转明细输入-修改
     * @param request 定位数据
     * @param loginName 用户英文名
     * @param companyId 公司ID
     * @return 待写入数据
     */
    List<PcCostTemp> modifyQuery(@Param("request") List<CostDTTRequest> request, @Param("loginName") String loginName, @Param("companyId") String companyId);

    /**
     *费用明细转明细输入-制定扣款数据查询
     * @param request 定位数据
     * @param loginName 用户英文名
     * @param companyId 公司ID
     * @return 待写入temp的数据
     */
    List<PcCostTemp> chargeBackQuery(@Param("request") List<CostDTTRequest> request, @Param("loginName") String loginName, @Param("companyId") String companyId);

    /**
     * 改变扣款状态
     * @param chargeBackDetails 需要修改的数据
     * @param processStatus 修改后的状态
     */
    void upStatus(@Param("chargeBackDetails") List<TempToDetVo> chargeBackDetails, @Param("processStatus") String processStatus);

    /**
     * 查询结算应付所需数据
     */
    List<YfApAmt> apAmpAddQuery(@Param("financeYymm") String financeYymm, @Param("vendorName") String vendorName, @Param("companyId") String companyId);

    /**
     * 写入结算单号
     */
    void apAmtAddUp(@Param("companyId") String companyId, @Param("financeYymm") String financeYymm, @Param("vendorName") String vendorName, @Param("slipNo") String slipNo);

    /**
     * 补充结算打印的送货单号
     * @param costVoList 待补充数据
     * @param companyId 公司ID
     * @return 补充后数据
     */
    List<YfApExportVo> suppDetailQuery(@Param("costVoList") List<YfApExportVo> costVoList, @Param("companyId") String companyId);
}
